#pragma once

namespace SNMP 
{
	public ref class ReceiveDataEventArgs : public System::EventArgs
	{
	private:
		PduData^ m_pduData;
		Entity^ m_entSrcEntity;
		Entity^ m_entDstEntity;
		Community^ m_comCommunity;
		array<byte>^ m_bytOriginalData;

	public: 
		property PduData^ Pdu
		{
			PduData^ get(void)
			{ 
				return this->m_pduData;
			}
		};

		property Entity^ SourceEntity
		{
			Entity^ get(void)
			{ 
				return this->m_entSrcEntity;
			}
		};

		property Entity^ DestinationEntity
		{
			Entity^ get(void)
			{ 
				return this->m_entDstEntity;
			}
		};

		property Community^ Context
		{
			Community^ get(void)
			{ 
				return this->m_comCommunity;
			}
		};

		property array<byte>^ OriginalData
		{
			array<byte>^ get(void)
			{ 
				return this->m_bytOriginalData;
			}
		};

	public:
		ReceiveDataEventArgs(Entity^ srcEntity, Entity^ dstEntity, Community^ community,PduData^ pdu, array<byte>^ originalData);
	};
}
